export interface IEnumerator<T> {
    // 将迭代器重置为初始位置
    reset(): void;

    // 如果没越界，moveNext将current设置为下一个元素，并返回true
    // 如果已越界，moveNext返回false
    moveNext(): boolean;

    // 获取当前的元素
    readonly current: T | undefined;
}

// 容器对象如果要支持迭代器模式，需要实现IEnumerable < T > 泛型接口
export interface IEnumerable<T> {
    getEnumerator(): IEnumerator<T>;
}